--GRAPHICS--
- InitGFX(width, height) this must be called before you can call any other graphics related functions, for example, if your tv was 720p you would call InitGFX(720,480)

- beginGFX() this must be called before you can begin drawing to the screen

- DrawText(x, y, text, surface) this will print text to the screen, x is the x posistion on the screen, y, is the y posistion, text is the text you want to print
and surface (see information on surface below) is the surface that you want to print the text on to, if you do not give it a surface, it will print to the main screen

- DrawCircle(x, y, size, r, g, b, alpha) this will draw a circle on the screen, x is the x posistion on the screen, y, is the y posistion, size is how many pixels wide you want the circle to be, r is the level of red for its color, g is the level of green for its color, b is the level of blue for its color, and alpha is for the
alpha :P

- BlitToScreen(surface) you must call this on every surface that you want drawn onto the main screen (see definition of surface below)

- endGFX() this must be called after you have drawn everything wanted onto the current frame

- Screenshot(filename) Saves a screenshot (bmp format) to your usb device, filename = name of file to be saved



--SURFACE--
a surface currently only holds a texture (only bmp format supported currently)
you must initialize surface by calling surface() for example ...

mySurface = surface()

you must initialize the suface before you can start using any of its methods, from here on, we will be using "mySurface" as the example for the method definitions

- mySurface:LoadIMG(bmpfile) this will load a bmp image file into "mySurface"

- mySurface:setRectPos(x, y) this will set the posistion on the screen where "mySurface" will be drawn, x is the x posistion, and y is the y posistion

- mySurface:getRes() this will return the width and height in pixels that the surface will take up, you need to call this in a way similar to...
mySurfaceWidth, mySurfaceHeight = mySurface:getRes()




--CONTROLS--
- initPads(num) you must call this before you can begin reading any keys num = the number of pads you want, 7 is reccomended

- setsixaxis(padnum, enable) you must call this before you can use any of the sixaxis functionality padnum is the pad that you want to enable/disable sixaxis on
if there is only one pad, you would use 0 for padnum, enable is weather you are wanting to enable or disable it, if enable, use 1, or 0 to disable

- up(padnum) returns true if the up button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- down(padnum) returns true if the down button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- left(padnum) returns true if the left button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- right(padnum) returns true if the right button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- triangle(padnum) returns true if the triangle button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- square(padnum) returns true if the square button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- circle(padnum) returns true if the circle button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- cross(padnum) returns true if the right button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- R1(padnum) returns true if the R1 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- R2(padnum) returns true if the R2 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- R3(padnum) returns true if the R3 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- L1(padnum) returns true if the L1 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- L2(padnum) returns true if the L2 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- L3(padnum) returns true if the L3 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- start(padnum) returns true if the start button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- select(padnum) returns true if the select button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0

- RanalogX(padnum) returns the x posistion of the right analog stick

- RanalogY(padnum) returns the Y posistion of the right analog stick

- LanalogX(padnum) returns the x posistion of the left analog stick

- LanalogY(padnum) returns the y posistion of the left analog stick


- Xaxis(padnum) returns the x axis value if sixaxis is enabled

- Yaxis(padnum) returns the y axis value if sixaxis is enabled

- Zaxis(padnum) returns the z axis value if sixaxis is enabled

- Gaxis(padnum) returns the gyro value if sixaxis is enabled
